package com.project.mapper;

import com.project.bean.AddressBookBean;
import com.project.bean.CutPageBean;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface IAddressMapper {
    /**
     * 添加人员
     * @param people 人员对象
     * @return 新加人员的id
     */
    public int add(AddressBookBean people);

    /**
     * 按ID删除人员
     * @param id 人员ID
     */
    public void del(int id);

    /**
     * 删除多个人员
     * @param idArray 多个人员的id数组
     */
    public void delMore(@Param("idArray")int[] idArray);

    /**
     * 按id修改店家
     * @param id 人员id
     * @param tel 新电话
     */
    //在mapper文件中通过别名引用实参，多个实参是要用@Param引用
    public void update(@Param("mid")int id,@Param("newTel") String tel);

    /**
     * 查询所有人员
     * @return 人员集合
     */
    public List<AddressBookBean> findAll();

    /**
     * 按照id查询人员
     * @param id 人员id
     * @return 人员对象
     */
    public AddressBookBean findById(int id);

    /**
     * 按姓名模糊查询
     * @param name 人员姓名
     * @return 人员集合
     */
    public  List<AddressBookBean>findByName(@Param("name")String name);

    /**
     * 按照生日开始结束日期查询人员
     * @param startDate 开始日期
     * @param endDate 结束日期
     * @return 查询集合
     */
    public  List<AddressBookBean>findByBirthday(@Param("startDate")String startDate,@Param("endDate")String endDate);

    public void addMore(@Param("list")List<AddressBookBean> list);

    public List<AddressBookBean> findByItem(@Param("name")String name,
                                            @Param("startDate")String startDate,
                                            @Param("endDate")String endDate);
    //查询当前验证的集合
    public List<AddressBookBean> cutAllList(@Param("start")int start,@Param("pageSize")int pageSize);
    //返回记录数
    public int cutAllCount();
    public List<AddressBookBean> cutByItem(@Param("name")String name,
                                                  @Param("startDate")String startDate,
                                                  @Param("endDate")String endDate,
                                                  @Param("start")int start,
                                                  @Param("pageSize")int pageSize);
    public int cuntByCount(@Param("name")String name,
                           @Param("startDate")String startDate,
                           @Param("endDate")String endDate);

}
